package com.atguigu.core.acc

import org.apache.spark.{SparkConf, SparkContext}

object TestAcc {
  def main(args: Array[String]): Unit = {

    // 初始化sc
    val conf: SparkConf = new SparkConf().setAppName("WordCount").setMaster("local[*]")
    val sc = new SparkContext(conf)
    sc.setLogLevel("ERROR")

    val rdd = sc.makeRDD(1 to 4)

    val acc = new MyAcc1
    sc.register(acc, "MyAcc1")
    //
    //    println(acc.value)
    //
    //    rdd.foreach(x => {
    //      acc.add(1)
    //    })
    //
    //
    //    println(acc.value)
    //
    //    sc.stop()


    //    val list = new util.ArrayList[Int]()


    //
    //    val acc2 = new MyAcc2
    //    sc.register(acc2,"acc2")
    //
    //    println(acc2.value.size())
    //
    //    rdd.foreach(x=>{
    ////      list.add(x)
    //      acc2.add(x)
    //
    //    })
    //
    //
    ////    println(list.size())
    //    println(acc2.value.size())

    rdd.foreach(x => {
      acc.add(1)
      println(acc.value)
    })

    sc.stop()

  }

}
